<?php
class View_Category {
	/**
	 * Метод выводит список категорий в админке
	 * 
	 * @param array $arrCategories - массив категорий
	 */
	public static function showAdminList(array &$arrCategories) {
		if(empty($arrCategories)) echo 'Категорий нет';
		$arrCategories = Category::getCategoriesTree($arrCategories);
		foreach($arrCategories as &$arrCategory) {
			self::showCategory($arrCategory, true);
		}
	}
	
	/**
	 * Метод выводит одну категорию и её детей
	 *
	 * @param array $arrCategory - массив категории
	 */
	public static function showCategory(array &$arrCategory, $isAdmin = false, $branchNumber = 1) {
		echo $isAdmin ? '<div>' : '';
			echo '<a href="' . W_ABSPATH . 'categories/' . $arrCategory['url'] . '" class="branch stage' . $branchNumber . '">';
				echo $arrCategory['category_full_name'];
				if($isAdmin) echo ' <a href="' . W_ADMIN . 'categories/edit/' . $arrCategory['ID_category'] . '">(Редактировать)</a>';
			echo '</a>';
		echo $isAdmin ? '</div>' : '';
		if(isset($arrCategory['children'])) {
			$branchNumber++;
			foreach($arrCategory['children'] as &$arrChildCategory) {
				self::showCategory($arrChildCategory, $isAdmin, $branchNumber);
			}	
		}
	}
	
	/**
	 * Выводит стрницу категории
	 * 
	 * @param Category $objCategory - объект категории
	 * @param array $arrProducts - массив товаров
	 */
	public static function showCategoryPage(Category $objCategory, array $arrProducts) {
		if($objCategory->getField('description')) {
			echo '<div class="cat-desc-slide">';
				echo  '<div class="cat-desc-wrap">';
					echo '<div class="cat-desc">';
						echo $objCategory->getField('description');
					echo '</div>';
				echo '</div>';
				echo  '<div class="slide-handler fr"><div class="slide-arrow"></div></div>';
				echo '<div class="clear"></div>';
			echo '</div>';
		}
		
		if(empty($arrProducts)) echo 'В данной категории нет товаров.';
		else View_Product::showProductsList($arrProducts);
	}
	
	/**
	 * Выводит форму добавления/редактирвоания категории
	 *
	 * @param Category $objCategory
	 */
	public static function showEditForm(Category $objCategory) {
		$objForm = new View_Form(array(
				'id' => 'category-edit-form',
				'left-width' => 180
		), $objCategory);
		
		$objForm->show();
			$objForm->textField(array('name' => 'category_short_name', 'text' => 'Название'));
			$objForm->textField(array('name' => 'category_full_name', 'text' => 'Полное название'));
			$objForm->textArea(array('name' => 'description', 'text' => 'Описание'));
			$objForm->textField(array('name' => 'url', 'text' => 'URL'));
			$objForm->textField(array('name' => 'meta_keywords', 'text' => 'Meta keywords'));
			$objForm->textField(array('name' => 'meta_description', 'text' => 'Meta description'));
			$objForm->select(array('name' => 'ID_parent_category', 'options' => $objCategory->getCategoriesAvailableAsParent(), 'chooseText' => 'Без категории', 'text' => 'Родительская категория'));
			$objForm->hiddenField(array('name' => 'ID_category'));
			$objForm->submit();
		$objForm->close();
	}
}